"""回测配置."""

from __future__ import annotations

from dataclasses import dataclass


@dataclass(frozen=True)
class BacktestConfig:
    """回测配置参数."""

    # Walk-forward 参数
    window_length: int = 60  # 回测窗口长度（交易日）
    step_size: int = 20  # 回测步长（交易日）

    # 信号阈值
    buy_threshold: float = 0.6  # 买入信号阈值（p_up > buy_threshold）
    sell_threshold: float = 0.4  # 卖出信号阈值（p_up < sell_threshold）

    # 止损止盈
    stop_loss_pct: float = 0.05  # 止损百分比（-5%）
    take_profit_pct: float = 0.10  # 止盈百分比（+10%）

    # 交易成本
    commission_rate: float = 0.0002  # 单边手续费（万2）
    slippage_rate: float = 0.001  # 滑点（0.1%）

    # 资金管理
    initial_capital: float = 1.0  # 初始资金
    max_position: float = 1.0  # 最大仓位（100%）
    risk_free_rate: float = 0.0  # 无风险利率（用于夏普比计算）

    # 交易规则
    signal_lag: int = 1  # 信号延迟（t日收盘形成信号，t+signal_lag日开盘成交）

